import { ContextItem } from './LingmaContext';
import { LingmaSDKTool } from './LingmaSDKTool';

/**
 * Custom command
 */
export interface CustomCommand{
  // User-defined parameters, for example, token used when calling GitHubAPI
  userDefinedParams: Map<string, string>;
  // Command execution
  execute: (options: ExecutionOptions, sdkTool: LingmaSDKTool) => Promise<CommandOutput>;
}

// Command execution input options
export interface ExecutionOptions{
  // User input text
  userInputText: string;
  // User input context instructions (such as: #team_docs,#file, etc.)
  associatedContexts: ContextItem[];
  // Selected code snippet
  selectedCode: string;
}

// Command execution output result
export class CommandOutput {
  // Prompt text
  prompt = '';
}
